package com.shujia.four;


import org.junit.Test;

import java.util.Arrays;

public class StingDemo2 {
    /*
    abc
    abcdef

    前缀一样, abc长度 - abcdef长度
    abc
    adc
    b - d, -2, 从前往后截取每个字符, 如果字符不相同,
    就用上面字符串截取字符 减去 下面字符串截取的字符

    abc
    abc
    abc长度 - abc长度, 长度一样, 结果是0

    str1.compareTo(String str2)
    1, str1和str2的值相同, 返回0
    2, str1的值大于str2的值, 返回正数, 数字是几, 不确定
    比较每一个字符, 把字符转为int做减法操作
    2, str1的值小于str2的值, 返回负数, 数字是几, 不确定
     */
    @Test
    public void test6() {
        // int compareTo(String anotherString)：比较两个字符串的大小
        String s1 = "abcdef";
        int result = s1.compareTo("abc");
        System.out.println(result);

        System.out.println("c".compareTo("a"));
        System.out.println("b".compareTo("z"));
        System.out.println("abc".compareTo("abc"));


    }

    @Test
    public void test5() {
        String s1 = "弓摧南山虎，aa手接太行猱。bb酒后竞风采，11三杯弄宝刀。";
//        boolean matches(String regex)：告知此字符串是否匹配给定的正则表达式。
        // 原值匹配
        // boolean flag = s1.matches("弓摧南山虎，手接太行猱。酒后竞风采，三杯弄宝刀。");
        boolean flag = s1.matches("\\W+");// 匹配非字符, 1次或多次
        System.out.println(flag);

//        String[] split(String regex)：根据给定正则表达式的匹配拆分此字符串。
        // String[] arr = s1.split("aa");
        String[] arr = s1.split("\\w{2}");
        System.out.println(Arrays.toString(arr));
//        String[] split(String regex, int limit)：
//        根据匹配给定的正则表达式来拆分此字符串，最多不超过limit个，如果超过了，剩下的全部都放到最后一个元素中。
        arr = s1.split("\\w{2}", 3);
        System.out.println(Arrays.toString(arr));
    }

    @Test
    public void test4() {
//        String replace(char oldChar, char newChar)：返回一个新的字符串，它是
//        通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。, 替换所有的字符
        String s1 = "杀人如剪草，剧孟同游遨。发愤去函谷，从军向临洮。人,剧孟同游遨";
        String result = s1.replace('人', '猪');
        System.out.println(s1);
        System.out.println(result);

//        String replace(CharSequence target, CharSequence replacement)：
//        使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
        result = s1.replace("剧孟同游遨", "写的正好!");
        System.out.println(result);

//        String replaceAll(String regex, String replacement) ： 使 用 给 定 的
//        replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
        // \W+
        s1 = "杀人如剪草，剧孟同游遨。发愤去函谷，111aaaa从军向临洮。人,剧孟同游遨";
        result = s1.replaceAll("\\W+", "写的正好!");
        System.out.println(result);
//        String replaceFirst(String	regex, String replacement) ： 使用给定的
//        replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
        result = s1.replaceFirst("\\W+", "写的正好!");
        System.out.println(result);


    }


}
